import { createApp } from 'vue'
import App from './App.vue'
import install from './install'
import './permission'
import './styles/index.scss'
import 'virtual:svg-icons-register'

const app = createApp(App)
// 注册自定义指令 v-prevent-reclick
const fun = (el: { disabled: boolean }, binding: { value: any }) => {
	el.disabled = true; // 点击后禁用按钮
	setTimeout(() => {
		el.disabled = false; // 在指定的时间后重新启用按钮
	}, binding.value || 2000); // 使用 binding.value 来设置等待时间，默认为 2000 毫秒
}

app.directive('prevent-reclick', {
	beforeMount(el, binding) {
		el.disabled = false; // 初始化时启用按钮
		// el.addEventListener('click', () => {
		// 	el.disabled = true; // 点击后禁用按钮
		// 	setTimeout(() => {
		// 		el.disabled = false; // 在指定的时间后重新启用按钮
		// 	}, binding.value || 2000); // 使用 binding.value 来设置等待时间，默认为 2000 毫秒
		// });
		el.addEventListener('click', fun(el, binding));
	},
	unmounted(el, binding) {
		// 组件卸载时移除事件监听器
		el.removeEventListener('click', fun(el, binding));
	},
});

app.use(install)
app.mount('#app')